﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GroupChat2013.Plugins;
using GroupChat2013.Entity;
using GroupChat2013.Common;
using GroupChat2013.Interface;

namespace GroupChat2013.Logic
{
    /// <summary>
    /// 上下文引擎
    /// </summary>
    public interface IEngine
    {
        /// <summary>
        /// 插件集合
        /// </summary>
        List<IPlugin> Plugins { get; }

        /// <summary>
        /// 插件上下文
        /// </summary>
        PluginContext PluginContext { get; }

        /// <summary>
        /// 当前登录用户信息
        /// </summary>
        UserInfo CurrUserInfo { get; set; }

        /// <summary>
        /// 聊天会话管理
        /// </summary>
        ChatManager ChatManager { get; }

        /// <summary>
        /// 文件路径管理
        /// </summary>
        FilePathManager FilePathManager { get; }

        #region 全局配置相关信息

        /// <summary>
        /// 聊天配置
        /// </summary>
        ParseConfig<ChatConfigInfo> ChatConfig { get; set; }

        #endregion

        /// <summary>
        /// 初始化组件
        /// </summary>
        /// <param name="config">Config</param>
        void Initialize();
    }
}
